﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;

namespace AgendaManager.Service
{
    public class ProvinciaDAO : DAOBase
    {
        public static Provincia NuevaProvincia(Provincia provincia)
        {
            try
            {
                int provinciaId = GetNextId(provincia);

                if (provinciaId != 0)
                {
                    provincia.Id = provinciaId;
                    if (CreateEntity(provincia))
                        return provincia;

                    throw new Exception("No se pudo crear la Provincia");
                }
                else
                    throw new Exception("No se pudo obtener el siguiente id de la entidad: Provincia");
            }
            catch (Exception)
            {

                throw;
            }
        }

        internal static List<Provincia> RetrieveEntities(object dto, string filtro)
        {
            List<Provincia> dtos = new List<Provincia>();

            DataTable dt = GetDataTable(dto, filtro);

            if (dt.Rows.Count > 0)
                dtos = LlenarProvincias(dto, dt);

            return dtos;
        }

        private static List<Provincia> LlenarProvincias(object dto, DataTable dt)
        {
            List<Provincia> dtos = new List<Provincia>();

            foreach (DataRow dr in dt.Rows)
            {
                Provincia aux = new Provincia();
                PoblarObjetoDesdeDataRow(aux, dr);

                dtos.Add(aux);
            }

            return dtos;
        }

        internal static List<Provincia> RetrieveEntitiesWhere(object dto, string where)
        {
            List<Provincia> dtos = new List<Provincia>();

            DataTable dt = GetDataTableWhere(dto, where);

            if (dt.Rows.Count > 0)
                dtos = LlenarProvincias(dto, dt);

            return dtos;
        }
    }
}